1. Field of the Invention
This invention relates generally to application servers, and more particularly to proactive data caching employing a graphical usage description.
2. Description of the Related Art
Web site users desire fast, easy access to accurate information. Web site publishers desire automated management processes and streamlined administration with maximum control. Developers of Web sites seek to provide a product that reflects commercial aims with a variety of data structures, while recognizing that new features are sometimes necessary as a is Web site grows and the needs of users change. A popular application server might endure millions of page impressions and user visits every week, and the goal is to deliver accurate results every time.
Servers that support Web sites are often slow to respond to a user""s request for data, and take time to store and retrieve data. If the server could anticipate how the user was going to navigate through the Web site, the system could preprocess and proactively cache data so as to improve response time and interact more seamlessly with a user.
A distributed application, such as a Web-based application, can often be described functionally as a set of user interface screens that invoke server actions: for example, in a WAP application a WAP login screen that accepts a user name and password and then invokes a login on the server. Each action invokes a server operation, which, in turn, invokes server side application logic (e.g., the login operation) and must generate the next user interface screen (e.g., the initial menu screen). Such an application can easily be represented as a state diagram: e.g., as a graph consisting of user interface screens linked together by lines representing possible control flows from screen to screen, such as, e.g., the login screen linked to an initial menu screen, etc. Such diagrams can be used to represent the functional flow of the application.
There continues to be a need for a solution to the aforementioned difficulties in server-side application processing and data retrieval.
According to an exemplary embodiment of the invention, a system includes a graphical usage description of a plurality of states of an application. A request handler retrieves data is based on a request and produces an indication of a current state of a user based on the request. An application state controller determines a next state based on the current state and the graphical usage description. A data generator caches data based on the current state and the next state.
According to another exemplary embodiment of the invention, in a method, a request for data is received. A current state is produced based on the request. A next state is determined based on the current state. Data are cached based on the current state and the next state.
Other aspects and advantages of the invention will become apparent from the following detailed description and accompanying drawings, illustrating by way of example the features of the invention.